Field of the Invention
The present invention relates to a technique for distributing requests in a processing system during processing system switching.
Description of the Related Art
In recent years, cloud services have emerged as services for enabling the use of diverse applications operating on servers on the Internet. In such cloud services as Infrastructure as a Service (IaaS) and Platform as a Service (PaaS), a cloud service vendor provides a system administrator with resources such as virtual machines and storages via networks. A virtual machine refers to some partition or segment of a server divided or integrated in logical units regardless of the physical configuration by using virtualization technology. Each virtual machine serves as a logical computer operating based on an independent operating system. The system administrator is able to configure a system for offering original services by using virtual machines, storages, and other resources offered by the cloud service vendor.
According to system administrator's arbitrary settings, a system configured based on cloud services is capable of automatically adjusting resources depending on the amount of requests to be received and the load for processing these requests. For example, Japanese Unexamined Patent Application Publication (Translation of PCT Application) No. 2013-543171 discusses an auto-scale function of automatically assigning computing resources required for program execution, starting program execution, and then changing the assigned resources.
Such resource adjustment processing is performed by a resource manager offered by cloud services. The amount of requests refers to the number of requests to be received in a unit time by a load balancer in a system configured based on cloud services. The load for processing, i.e., a load on processing by a virtual machine, refers to the usage rate of a central processing unit (CPU) by the virtual machine, the memory usage rate, and the response time. The resource adjustment processing includes “scale-out” for increasing the number of virtual machines, and “scale-up” for increasing hardware resources to be assigned to virtual machines. The resource adjustment processing further includes “scale-in” for reducing the number of virtual machines, and “scale-down” for reducing hardware resources to be assigned to virtual machines. Hardware resources include CPUs, memories, storages. The load balancer is also capable of automatically performing scale-out based on the amount of requests to be received.
In recent years, when upgrading the above-described system configured based on cloud services, a technique called “Blue-Green deployment” may be used. The system upgrade includes, for example, the upgrade of applications executed on virtual machines in the system. In the system after upgrade, providable functions may be increased, and the type and format of management data may be changed.
Blue-green deployment is a release technique that reduces downtime and risk by running two identical production environments called Blue and Green. At any time, only one of the environments is live, with the live environment serving all production traffic. The Blue-Green deployment technique will be described below.
On cloud services, a processing system is operating as a released production environment for receiving requests from external networks and performing processing thereof. When the processing system is to be upgraded, the technique further configures on cloud services a processing system after upgrade, different from the processing system of the current version. Then, when the upgrade timing comes, the technique changes the setting of a connection destination (indicating a transmission target) of requests from external networks on cloud services, and switches a processing system to be the released production environment. In this case, the technique switches the released production environment to the processing system after upgrade. This switching achieves the system upgrade.
In this case, the processing system on which the above-described system of the current version operates, i.e., the processing system before switching is referred to as a Blue environment. On the other hand, the processing system on which the above-described system after upgrade is configured, i.e., the processing system after switching is referred to as a Green environment. Hereinafter, in some cases, the Blue environment may be referred to as a first processing system, and the Green environment may be referred to as a second processing system.
The processing system switching based on the Blue-Green deployment technique may also be used for other than the above-described system upgrade. For example, the technique is used for a case where a request processing environment is switched from a processing system (first processing system) having a failure or bug to another processing system (second processing system) normally operating.
The above-described system may be scheduled, for example, to be upgraded several times a day. Taking the transition in the amount of requests into consideration, such a system has difficulty in performing the above-described processing system switching because the next upgrade time is close. Further, in some cases, the release date of a system of a new version cannot be largely shifted to a subsequent date because of system operations. Therefore, even when the first processing system is receiving a large number of requests from an external network and therefore is subjected to a large processing load, it may be necessary to start processing for switching the processing system for processing these requests aiming for the upgrade.
When the first processing system is subjected to a large load on request-related processing, the above-described resource manager performs resource adjustment processing so that a large amount of resources are offered to the load balancer for processing requests within the first processing system. On the other hand, the second processing system prepared for processing system switching for upgrade has not yet received and processed a request from an external network, and therefore the resource manager has not completed the resource adjustment processing. When the system administrator considers the saving of the system maintenance cost, the second processing system prepared in advance may be configured with a comparatively small amount of resources. When the above-described system switching processing is performed under such a situation, the second processing system will receive a large number of requests at one time. In this case, if the resource adjustment processing by the resource manager is slow, request processing by the second processing system may possibly be stagnated.